from IPython.display import HTML
import pandas as pd
import datetime
HTML('''<script>
code_show=true;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit" value="Source"></form>''')
now = datetime.datetime.now()
print("Generated on " + now.strftime("%Y-%m-%d"))
The Product Management Metrics & OKRs are derived from two sources of data- issue metadata and parent/child relationships between PM and Engineering JIRA issues. Figure 1.0 details the relevant metadata and relationships.
To support the veracity of the data acquired, it is requested that Product Engineering contribute to the mapping of Engineering issues to Product Management issues.
Raw changelog and issue metadata is retrieved using the Python JIRA API and transformed using Pandas. Figure 2.0 contains a sample from the PM JIRA project dataset.
Metadata and relationship between PM & Engineering JIRA issues.
Sample of data extracted from PM → Engineering JIRA issue relationships.
pd.set_option('display.max_columns', None)
sample = pd.read_csv('pm_changelog_clean.csv').drop(['Unnamed: 0', 'remove'], axis=1)
sample[100:105]
| Data Point | Data Source | Work Metric | Time Metric |
|---|---|---|---|
| Milestone | Label: Milestone, Date Range |
N/A | N/A |
| Release | Field: Fix_Version, Date Range |
N/A | N/A |
| Product Backlog | Children of issues linked to PM issue | Sum of Closed Issues in milestone label/date range. | Sum time deltas of status changes to doing, test, documentation, verified, closed. |
| CRT | Label: Customer_Priority, Services_Priority on PM issue |
Sum of Closed Issues in milestone label/date range. | Sum time deltas of status changes to doing, test, documentation, verified, closed. |
| Quality | Issue Type: Bug |
Sum of Closed Issues in milestone label/date range. | Sum time deltas of status changes to doing, test, documentation, verified, closed. |
| Engineering | Label: DDB, Delta between PM-linked issues and all Engineering issues |
Sum of Closed Issues in milestone label/date range. | Sum time deltas of status changes to doing, test, documentation, verified, closed. |
from scripts import metrics_okrs
import importlib
from pandas.api.types import is_string_dtype
importlib.reload(metrics_okrs)
metrics_okrs.milestone_investment('5.7.0')
metrics_okrs.milestone_investment('5.6.0')
metrics_okrs.milestone_investment('5.5.0')
The number of issues closed, open issues remaining and time spent towards product objectives (Strategic Accounts, vJSX, Performance, Cloud JSX, RN Upgrade, Enablement and Platform) by release and milestone.
| Data Point | Data Source | Work Metric | Time Metric |
|---|---|---|---|
| Milestone | Label: Milestone, Date Range |
N/A | N/A |
| Release | Field: Fix_Version, Date Range |
N/A | N/A |
| Product Backlog | Label: Strategic_Accounts, vJSX, Performance, Cloud JSX, RN Upgrade, Enablement, Platform |
Sum of closed issues with Product Backlog label in milestone label/date range. Sum of total issues with Product Backlog label in milestone label/date range. |
Sum time deltas of status changes to doing, test, documentation, verified, closed. |
importlib.reload(metrics_okrs)
metrics_okrs.pm_okrs()
Explanation goes here